package com.sq.partner.manager.dao;

import java.util.List;

import com.sq.partner.manager.common.Result;
import com.sq.partner.manager.mybatis.model.GatewayAppTranstype;
import com.sq.partner.manager.mybatis.model.GatewayChannelInfo;

/**
 * 
 * @author Kang Zhiqiang 
 *
 */
public interface IGatewayAppTranstypeDao extends BaseDao{

	/**
	 * 添加appTranstype
	 * @param appTranstype
	 * @throws Exception
	 */
	public void save(GatewayAppTranstype appTranstype) throws Exception;
	
	/**
	 * 根据appId查询与之关联的所有appTranstype
	 * @param appTranstype
	 * @return
	 */
	public List<GatewayAppTranstype> queryByFkAppId(GatewayAppTranstype appTranstype) throws Exception;
	
	/**
	 * 根据appTranstype属性删除appTranstype
	 * @param appTranstype
	 * @throws Exception
	 */
	public Result delByAppTranstype(Long appTransTypeId) throws Exception;
	
	/**
	 * 根据appId属性删除appTranstype
	 * @param appTranstype
	 * @throws Exception
	 */
	public void delByAppId(String appId) throws Exception;
	
	/**
	 * 根据传入的channelCode查询在该channelTranstype中不存在，而在该channelCode所属app中存在的appTranstype
	 * @param channelInfo
	 * @return
	 * @throws Exception
	 */
	public List<GatewayAppTranstype> queryNotUsedAppTranstype(GatewayChannelInfo channelInfo) throws Exception;
	
	/**
	 * 检查传入的transCode在传入的app中是否存在
	 * @param appId
	 * @param transCode
	 * @return
	 * @throws Exception
	 */
	public GatewayAppTranstype checkTransCodeIfUsedInOneApp(String appId,String transCode) throws Exception;
}
